LSTM-1

Es wird zunächst ein simples Netz entwickelt. Das Netz besteht aus einer LSTM-Schicht á 32 Neuronen, die mittels Tanh aktiviert werden. Das Training erfolgt über 50 Epochen mit einer Batchgröße von 16 und einer Lernrate von 0,001. Die Fensterlänge wird initial auf 14 festgelegt.

Modell und Parameter

Daten laden

Training

Auswertung des Trainings

Das Modell lernt sehr schnell an. In den frühen Epochen wird die Verlustfunktion sehr stark reduziert, ab etwa der 20. Epoche ist der Nutzen je Epoche bereits sehr gering. Ab etwa der 40. Epoche beginnt die Konvergenz des Modells. Das Netz lern sogar so schnell an, dass die Verlustfunktion bei den Validierungsdaten in den ersten 10 Epochen etwas niedriger ist als bei den Trainingsdaten. Ein derartiger Verlauf der Lernkurve lässt auf eine zu hohe Lernrate hindeuten.

Das Modell erreicht auf den Testdaten einen MAPE von etwa 2,39%, im Vergleich dazu wird auf den Trainingsdaten 1,89% erreicht. Neben der möglicherweise zu hohen Lernrate liegt also außerdem eine leichte Überanpassung vor.

Test

LSTM-2

Es wird also zunächst versucht, die Lernrate etwas zu senken. Dafür wird die Lernrate von 0,001 auf 0,0005 gesenkt.

Modell und Parameter

Daten laden

Training

Auswertung des Trainings

Das Netz verhält sich beim Training mit der etwas niedrigeren Lernrate immer noch ähnlich, allerdings setzt die Konvergenz scheinbar etwas später ein. Die Anzahl an Epochen sollte bei einer geringeren Lernrate also erhöht werden.

Das Modell hat sich trotzdem insgesamt etwas verbessert. Der MAPE fällt bei den Testdaten auf 2,2%, steigt dafür aber auf den Trainingsdaten auf 2,04%. Die Überanpassung wurde also bereits teilweise behoben.

Test

LSTM-3

Da einer verringerte Lernrate das Modell verbessert und auch die Überanpassung vermindert, wird eine noch niedrigere Lernrate ausprobiert. Sie wird von 0,0005 auf 0,0001 gesenkt.

Modell und Parameter

Daten laden

Training

Auswertung des Trainings

Das Netz lernt zu Beginn nun sehr viel langsamer, die Konvergenz setzt erwartungsgemäß erst nach mehr Epochen ein. Das Training sollte also möglicherweise etwas verlängert werden. Es scheint zunächst nicht zu Überanpassungen zu kommen. Allerdings sind die Verlustfunktionen etwas höher.

Das Modell hat sich durch die sehr niedrigere Lernrate erheblich verschlechtert. Der Abstand des MAPE auf Trainings- und Testdaten hat sich verringert, die Überanpassung nimmt also weiter ab. Allerdings scheint es eher zu einer Unteranpassung zu kommen, da das Modell sehr schlecht abschneidet.

Test

LSTM-4

Die Lernrate wird wieder auf 0,005 festgelegt, da sich hier gute Ergebnisse erzielen ließen. Im nächsten Verusch werden die Batches von 16 auf 32 erhöht, um sicherzustellen, dass die Verlustfunktion nicht in einem lokalen Minimum hängen bleibt.

Modell und Parameter

Daten laden

Training

Auswertung des Trainings

Wie schon bei LSTM-2 lernt das Modell sehr schnell und die Konvergenz setzt etwas früher ein.

Im Vergleich zu LSTM-2 lassen sich der MAPE auf den Trainings- und Testdaten jedoch nicht wirklich verbessern. Bei den Testdaten setzt sogar eine leichte Verschlechterung ein, was auf eine leichte Überanpassung deuten könnte.

Test

LSTM-5

Es wird nun versucht, das Training mit einer kleineren Batchgröße á 8 und etwas mehr Epochen als bei LSTM-2 zu verbessern.

Modell und Parameter

Daten laden

Training

Auswertung des Trainings

Wie schon bei LSTM-2 lernt das Modell sehr schnell und die Konvergenz setzt etwas früher ein. Eine Verbesserung bei der Verlustfunktion ist zunächst nicht zu erkennen. Allerdings setzt die Konvergenz erst sehr spät ein, es könnten also gegebenenfalls mehr Epochen notwendig sein. Davon soll allerdings zunächst abgesehen werden, da es hierdurch zu stärkeren Überanpassungen kommt.

Der MAPE hat sich geringfügig verbessert, aher werden zunächst weiter 8er Batches verwendet. Stattdessen soll die LSTM-Schicht durch weitere Neuronen ergänzt werden, um mehr Potenzial zu schaffen.

Test

LSTM-6

Die LSTM-Schicht wird durch weitere Neuronen ergänzt, um mehr Potenzial zu erschließen. Dafür werden statt 32 nun 64 Neuronen in die Schicht eingefügt.